home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / x / volume10 / xfig2 / patch9.06 < prev    next >
Encoding:
Internet Message Format  |  1990-10-25  |  32.7 KB

  1. Path: uunet!lll-winken!sun-barr!newstop!sun!bea.lbl.gov
  2. From: envbvs@bea.lbl.gov (Brian V. Smith)
  3. Newsgroups: comp.sources.x
  4. Subject: v10i031: xfig -- X Drawing Tool, Patch9, Part06/06
  5. Message-ID: <144204@sun.Eng.Sun.COM>
  6. Date: 25 Oct 90 18:07:05 GMT
  7. References: <csx-10i026:xfig2@uunet.UU.NET>
  8. Sender: news@sun.Eng.Sun.COM
  9. Lines: 1126
  10. Approved: argv@sun.com
  11.  
  12. Submitted-by: envbvs@bea.lbl.gov (Brian V. Smith)
  13. Posting-number: Volume 10, Issue 31
  14. Archive-name: xfig2/patch9.06
  15. Patch-To: xfig2.8: Volume 8, Issue 10-30
  16.  
  17. #! /bin/sh
  18. # This is a shell archive.  Remove anything before this line, then unpack
  19. # it by saving it into a file and typing "sh file".  To overwrite existing
  20. # files, type "sh file -c".  You can also feed this as standard input via
  21. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  22. # will see the following message at the end:
  23. #        "End of archive 6 (of 6)."
  24. # Contents:  patch9.diff2
  25. # Wrapped by envbvs@bea.lbl.gov.lbl.gov on Wed Oct 17 10:24:45 1990
  26. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  27. if test -f 'patch9.diff2' -a "${1}" != "-c" ; then 
  28.   echo shar: Will not clobber existing file \"'patch9.diff2'\"
  29. else
  30. echo shar: Extracting \"'patch9.diff2'\" \(30432 characters\)
  31. sed "s/^X//" >'patch9.diff2' <<'END_OF_FILE'
  32. X*** main.c.p9    Mon Jun 25 11:24:36 1990
  33. X--- main.c    Thu Sep 20 16:21:20 1990
  34. X***************
  35. X*** 30,35 ****
  36. X--- 30,38 ----
  37. X  static char    tool_name[100] = " FIG : FACILITY FOR INTERACTIVE GENERATION OF FIGURES ";
  38. X  static            sigwinched();
  39. X  
  40. X+ char        cut_buf_name[100];
  41. X+ char        *getenv();
  42. X+ 
  43. X  /************** FIG options ******************/
  44. X  
  45. X  extern    appresStruct    appres;
  46. X***************
  47. X*** 122,128 ****
  48. X      printf("Initializing FIG v%s Protocol v%s (X11 patchlevel %d) ... \n", 
  49. X              FIG_VERSION, PROTOCOL_VERSION, PATCHLEVEL);
  50. X      tool = XtInitialize("fig", "Fig", options, XtNumber(options),
  51. X!         &argc, argv);
  52. X  
  53. X      fix_converters();
  54. X      XtGetApplicationResources(tool, &appres, application_resources, 
  55. X--- 125,131 ----
  56. X      printf("Initializing FIG v%s Protocol v%s (X11 patchlevel %d) ... \n", 
  57. X              FIG_VERSION, PROTOCOL_VERSION, PATCHLEVEL);
  58. X      tool = XtInitialize("fig", "Fig", options, XtNumber(options),
  59. X!         (Cardinal *)&argc, argv);
  60. X  
  61. X      fix_converters();
  62. X      XtGetApplicationResources(tool, &appres, application_resources, 
  63. X***************
  64. X*** 302,307 ****
  65. X--- 305,311 ----
  66. X      setup_fontmenu();        /* install bitmaps in printer font menu */
  67. X      printer_select();
  68. X      show_fontsize();
  69. X+     show_textstep();
  70. X      show_line_thickness();
  71. X      put_msg("READY");
  72. X      canvas_rightbut_proc = set_popupmenu;
  73. X***************
  74. X*** 309,313 ****
  75. X--- 313,331 ----
  76. X          edit_file(filename);
  77. X      (void)signal(SIGINT, SIG_IGN);    /* so we don't lose work accidentally */
  78. X      
  79. X+         /* get a name for the cut buffer */
  80. X+     /*  first try to create a file in the users HOME directory */
  81. X+     /*  with a fixed name.  This will allow cutting and pasting */
  82. X+     /*  between sessions of the same user */
  83. X+     /*  If the HOME directory cannot be found, then create a temporary */
  84. X+     /*  file in the /tmp directory.  This should have a unique name */
  85. X+     /*  so that multiple users do not clash */
  86. X+     if(*strcpy(cut_buf_name,getenv("HOME")) != NULL) {
  87. X+         strcat(cut_buf_name, "/.xfig");
  88. X+     }
  89. X+     else {
  90. X+             sprintf(cut_buf_name, "%s%06d", "/tmp/xfig",getpid());
  91. X+     }
  92. X+ 
  93. X      XtMainLoop();
  94. X  }
  95. X*** panel.c.p9    Mon Jun 25 13:22:55 1990
  96. X--- panel.c    Mon Aug 13 11:13:57 1990
  97. X***************
  98. X*** 24,29 ****
  99. X--- 24,30 ----
  100. X  extern        change_directory();
  101. X  extern        print_wdir();
  102. X  extern        print_figure();
  103. X+ extern        finish_text_input();
  104. X  extern    int    line_thickness;
  105. X  extern    int    cur_radius;
  106. X  extern    int    cur_areafill;
  107. X***************
  108. X*** 32,37 ****
  109. X--- 33,39 ----
  110. X  extern    char    current_file[];
  111. X  extern    int    print_landscape;
  112. X  extern    int    size_button;
  113. X+ extern    int    step_button;
  114. X  extern    int    type_button;
  115. X  extern    char    *printer;
  116. X  extern    int    cur_printer;
  117. X***************
  118. X*** 77,82 ****
  119. X--- 79,86 ----
  120. X  static        popup_fonts();
  121. X  static        inc_size_button();
  122. X  static        dec_size_button();
  123. X+ static        inc_step_button();
  124. X+ static        dec_step_button();
  125. X  static        land_button();
  126. X  
  127. X  static    Pixmap    Lp_pm;    /* pixmaps for print-Landscape/Portrait button */
  128. X***************
  129. X*** 83,91 ****
  130. X--- 87,97 ----
  131. X  static    Pixmap    lP_pm;
  132. X  static    Pixmap    print_sel_pm;    /* pixmap for printer selection widget */
  133. X  static    Pixmap    font_size_pm;    /* pixmap for printer selection widget */
  134. X+ static    Pixmap    font_step_pm;    /* pixmap for text step widget */
  135. X  static    Pixmap    text_just_pm[3]; /* pixmaps for left/center/right just widget */
  136. X  static    Widget    print_sel_widget;
  137. X  static    Widget    font_size_widget;
  138. X+ static    Widget    font_step_widget;
  139. X  static    F_switch *text_just_sw;    /* text justification button */
  140. X  static    F_switch *land_port_sw;    /* landscape/portrait button */
  141. X  
  142. X***************
  143. X*** 177,182 ****
  144. X--- 183,189 ----
  145. X      { 0, -1, 0, 0, &print_sel_ic, F_PRINTSEL, panel_button, null_proc, S_MOMENT,},
  146. X      { 0, -1, 0, 0, &font_ic, F_FONT, popup_fonts, null_proc, S_MOMENT, },
  147. X      { 0, -1, 0, 0, &size_ic, F_SIZE, dec_size_button, null_proc, S_MOMENT, },
  148. X+     { 0, -1, 0, 0, &step_ic, F_STEP, dec_step_button, null_proc, S_MOMENT, },    
  149. X      { 0, -1, 0, 0, &textL_ic, F_JUST, text_just_button, null_proc, S_MOMENT, },
  150. X      { 0, -1, 0, 0, &land_ic, F_LAND, land_button, null_proc, S_MOMENT, },
  151. X      { 0, -1, 0, 0, &undo_ic, F_UNDO, panel_button, null_proc, S_MOMENT, },
  152. X***************
  153. X*** 273,279 ****
  154. X  static right_but();
  155. X  
  156. X  /* button selection event handler */
  157. X! static sel_but();
  158. X  
  159. X  int 
  160. X  init_panel(tool)
  161. X--- 280,286 ----
  162. X  static right_but();
  163. X  
  164. X  /* button selection event handler */
  165. X! static void sel_but();
  166. X  
  167. X  int 
  168. X  init_panel(tool)
  169. X***************
  170. X*** 443,448 ****
  171. X--- 450,460 ----
  172. X              font_size_pm = p;
  173. X              font_size_widget = sw->but.widget;
  174. X              }
  175. X+         else if (sw->value == F_STEP) /* save pointer for text step */
  176. X+             {
  177. X+                font_step_pm = p;
  178. X+                font_step_widget = sw->but.widget;
  179. X+             }
  180. X          else if (sw->value == F_JUST) /* save ptr to pixmap/widget for text justification */
  181. X              {
  182. X              text_just_sw = sw;
  183. X***************
  184. X*** 489,495 ****
  185. X  
  186. X  /* come here when a button is pressed in either of the panels */
  187. X  
  188. X! static
  189. X  sel_but(widget, sw, event)
  190. X  Widget widget;
  191. X  F_switch *sw;
  192. X--- 501,507 ----
  193. X  
  194. X  /* come here when a button is pressed in either of the panels */
  195. X  
  196. X! static void
  197. X  sel_but(widget, sw, event)
  198. X  Widget widget;
  199. X  F_switch *sw;
  200. X***************
  201. X*** 522,527 ****
  202. X--- 534,543 ----
  203. X          case F_SIZE:
  204. X              inc_size_button(sw);
  205. X              break;
  206. X+ 
  207. X+         case F_STEP:
  208. X+             inc_step_button(sw);
  209. X+             break;            
  210. X          }
  211. X      }
  212. X  
  213. X***************
  214. X*** 634,639 ****
  215. X--- 650,657 ----
  216. X      extern int    rotate_angle;
  217. X      extern int    flip_axis;
  218. X  
  219. X+     if (cur_command == F_TEXT)
  220. X+         finish_text_input();    /* finish up any text input */
  221. X      switch (sw->value) {
  222. X          case F_CIRCLE_BY_RAD :
  223. X          circlebyradius_drawing_selected();
  224. X***************
  225. X*** 1114,1120 ****
  226. X  panel_button(sw)
  227. X  F_switch *sw;
  228. X      {
  229. X!     char_handler(CR);        /* finish any text in progress */
  230. X      switch (sw->value) {
  231. X          case F_UNDO : 
  232. X          undo();
  233. X--- 1132,1139 ----
  234. X  panel_button(sw)
  235. X  F_switch *sw;
  236. X      {
  237. X!     if (cur_command == F_TEXT)
  238. X!         finish_text_input();    /* finish up any text input */
  239. X      switch (sw->value) {
  240. X          case F_UNDO : 
  241. X          undo();
  242. X***************
  243. X*** 1246,1252 ****
  244. X--- 1265,1295 ----
  245. X      show_fontsize();
  246. X      }
  247. X  
  248. X+ static
  249. X+ inc_step_button(sw)
  250. X+ F_switch *sw;
  251. X+     {
  252. X+     if (step_button >= 100)
  253. X+         {
  254. X+         step_button = (step_button/10) * 10; /* round first */
  255. X+         step_button += 10;
  256. X+         }
  257. X+     else if (step_button >= 50)
  258. X+         {
  259. X+         step_button = (step_button/5) * 5;
  260. X+         step_button += 5;
  261. X+         }
  262. X+     else if (step_button >= 20)
  263. X+         {
  264. X+         step_button = (step_button/2) * 2;
  265. X+         step_button += 2;
  266. X+         }
  267. X+     else
  268. X+         step_button++;
  269. X+     show_textstep();
  270. X+     }
  271. X  
  272. X+ 
  273. X  /* decrease font size for print */
  274. X  
  275. X  static
  276. X***************
  277. X*** 1273,1278 ****
  278. X--- 1316,1346 ----
  279. X      show_fontsize();
  280. X      }
  281. X  
  282. X+ 
  283. X+ static
  284. X+ dec_step_button(sw)
  285. X+ F_switch *sw;
  286. X+     {
  287. X+     if (step_button > 100)
  288. X+         {
  289. X+         step_button = (step_button/10) * 10; /* round first */
  290. X+         step_button -= 10;
  291. X+         }
  292. X+     else if (step_button > 50)
  293. X+         {
  294. X+         step_button = (step_button/5) * 5;
  295. X+         step_button -= 5;
  296. X+         }
  297. X+     else if (step_button > 20)
  298. X+         {
  299. X+         step_button = (step_button/2) * 2;
  300. X+         step_button -= 2;
  301. X+         }
  302. X+     else if (step_button > 4)
  303. X+         step_button--;
  304. X+     show_textstep();
  305. X+     }
  306. X+ 
  307. X  static char tmpsiz[5];
  308. X  
  309. X  show_fontsize()
  310. X***************
  311. X*** 1296,1301 ****
  312. X--- 1364,1387 ----
  313. X      XtSetValues(font_size_widget, &button_args[3], 1);
  314. X      }
  315. X  
  316. X+ /* could make this more generic - but a copy will do for font set JNT */
  317. X+ show_textstep()
  318. X+     {
  319. X+     put_msg("Font step %.1f",step_button / 10.0);
  320. X+     /* write the font size in the background pixmap */
  321. X+     tmpsiz[0]=tmpsiz[1]=tmpsiz[2]=tmpsiz[3]=tmpsiz[4]='\0';
  322. X+     sprintf(tmpsiz,"%3.1f",step_button / 10.0);
  323. X+     XDrawImageString(tool_d, font_step_pm, button_gc, 
  324. X+             31, 12, tmpsiz, strlen(tmpsiz));
  325. X+ 
  326. X+     button_args[3].value = 0;
  327. X+     XtSetValues(font_step_widget, &button_args[3], 1);
  328. X+ 
  329. X+     /* put the pixmap in the widget background */
  330. X+     button_args[3].value = font_step_pm;
  331. X+     XtSetValues(font_step_widget, &button_args[3], 1);
  332. X+     }
  333. X+ 
  334. X  /* change landscape/portrait flag for print */
  335. X  
  336. X  static
  337. X***************
  338. X*** 1314,1337 ****
  339. X          button_args[3].value = (XtArgVal) (print_landscape? Lp_pm: lP_pm);
  340. X      XtSetValues(land_port_sw->but.widget, &button_args[3], 1);
  341. X      put_msg("Print in %s mode",print_landscape? "LANDSCAPE": "PORTRAIT");
  342. X-     }
  343. X- 
  344. X- /* undo last operation */
  345. X- 
  346. X- static
  347. X- undo_button(sw)
  348. X- F_switch *sw;
  349. X-     {
  350. X-     undo();
  351. X-     }
  352. X- 
  353. X- /* redisplay */
  354. X- 
  355. X- static
  356. X- redisp_button(sw)
  357. X- F_switch *sw;
  358. X-     {
  359. X-     redisplay_canvas();
  360. X      }
  361. X  
  362. X  turn_on(s)
  363. X--- 1400,1405 ----
  364. X*** panel2.h.p9    Mon Apr  9 09:39:37 1990
  365. X--- panel2.h    Thu Aug  2 10:55:41 1990
  366. X***************
  367. X*** 211,216 ****
  368. X--- 211,236 ----
  369. X     0x00, 0x00, 0x00, 0x00};
  370. X  mpr_static(size_ic,52,28,1,size_image);
  371. X  
  372. X+ static char step_image[196] = {
  373. X+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  374. X+    0x00, 0x00, 0xf8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x02, 0x00,
  375. X+    0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x40,
  376. X+    0x8c, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x40, 0x12, 0x25, 0x00, 0x00, 0x00,
  377. X+    0x00, 0x40, 0x1e, 0x22, 0x00, 0x00, 0x00, 0x00, 0x40, 0x02, 0x22, 0x00,
  378. X+    0x00, 0x00, 0x00, 0x40, 0x26, 0x25, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x9c,
  379. X+    0xcd, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
  380. X+    0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00,
  381. X+    0x00, 0x00, 0x70, 0x01, 0x00, 0x54, 0x00, 0x00, 0x00, 0x88, 0x01, 0x00,
  382. X+    0x10, 0x00, 0x00, 0x00, 0x08, 0x09, 0x00, 0x10, 0x00, 0x00, 0x00, 0x30,
  383. X+    0x3c, 0xf3, 0x10, 0x00, 0x00, 0x00, 0xe0, 0x88, 0x24, 0x11, 0x00, 0x00,
  384. X+    0x00, 0x80, 0x89, 0x27, 0x11, 0x00, 0x00, 0x00, 0x08, 0x89, 0x20, 0x55,
  385. X+    0x00, 0x00, 0x00, 0x98, 0x89, 0x29, 0x39, 0x00, 0x00, 0x00, 0xe8, 0x30,
  386. X+    0xe7, 0x10, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
  387. X+    0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
  388. X+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  389. X+    0x00, 0x00, 0x00, 0x00};
  390. X+ mpr_static(step_ic,52,28,1,step_image);
  391. X+ 
  392. X  static char font_image[210] = {
  393. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  394. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff,
  395. X*** patchlevel.h.p9    Tue May  1 16:59:08 1990
  396. X--- patchlevel.h    Fri Jun 29 09:14:55 1990
  397. X***************
  398. X*** 1 ****
  399. X! #define PATCHLEVEL 8
  400. X--- 1 ----
  401. X! #define PATCHLEVEL 9
  402. X*** popup.c.p9    Tue May  1 16:33:52 1990
  403. X--- popup.c    Thu Sep 20 16:39:55 1990
  404. X***************
  405. X*** 14,32 ****
  406. X  
  407. X  /*******************  imported global variables and procedures  **************/
  408. X  
  409. X! extern int        figure_modified;
  410. X! extern char        current_file[];
  411. X  
  412. X! extern            put_msg();
  413. X! extern            init_msg_receiving();
  414. X! extern            read_file();
  415. X! extern            edit_file();
  416. X! extern            change_directory();
  417. X! extern            save_current_file();
  418. X! extern            save_file();
  419. X! extern            save_and_exit();
  420. X! extern            write_bitmap();
  421. X! extern            Reset_cursor();
  422. X  
  423. X  /********************  local variables  ***************************/
  424. X  
  425. X--- 14,36 ----
  426. X  
  427. X  /*******************  imported global variables and procedures  **************/
  428. X  
  429. X! extern int    figure_modified;
  430. X! extern char    current_file[];
  431. X! extern int    cur_command;
  432. X! extern char    cut_buf_name[];
  433. X  
  434. X! extern        put_msg();
  435. X! extern        init_msg_receiving();
  436. X! extern        read_file();
  437. X! extern        edit_file();
  438. X! extern        change_directory();
  439. X! extern        save_current_file();
  440. X! extern        save_file();
  441. X! extern        save_and_exit();
  442. X! extern        write_bitmap();
  443. X! extern        Reset_cursor();
  444. X! extern        file_cut_selected();
  445. X! extern        finish_text_input();
  446. X  
  447. X  /********************  local variables  ***************************/
  448. X  
  449. X***************
  450. X*** 35,40 ****
  451. X--- 39,46 ----
  452. X      {MENU_IMAGESTRING, "Undo",        (caddr_t) F_UNDO},
  453. X      {MENU_IMAGESTRING, "Redisplay",        (caddr_t) F_REDISPLAY},
  454. X      {MENU_IMAGESTRING, "Remove all",    (caddr_t) F_REMOVE_ALL},
  455. X+     {MENU_IMAGESTRING, "Cut",        (caddr_t) F_CUT},
  456. X+     {MENU_IMAGESTRING, "Paste",        (caddr_t) F_PASTE},
  457. X      {MENU_IMAGESTRING, "Edit file ...",    (caddr_t) F_EDIT},
  458. X      {MENU_IMAGESTRING, "Save",        (caddr_t) F_SAVE},
  459. X      {MENU_IMAGESTRING, "Read file ...",    (caddr_t) F_READ},
  460. X***************
  461. X*** 165,176 ****
  462. X  {
  463. X      int            menu_code = (int)mi->info;
  464. X  
  465. X!     char_handler(CR);
  466. X  
  467. X      switch(menu_code) {
  468. X          case F_UNDO : 
  469. X          undo();
  470. X          break;
  471. X          case F_READ :
  472. X          init_msg_receiving(read_file, "Read file : ");
  473. X          break;
  474. X--- 171,191 ----
  475. X  {
  476. X      int            menu_code = (int)mi->info;
  477. X  
  478. X!     if (cur_command == F_TEXT)
  479. X!         finish_text_input();
  480. X!     /* char_handler(CR); */    /* old method */
  481. X  
  482. X      switch(menu_code) {
  483. X          case F_UNDO : 
  484. X          undo();
  485. X          break;
  486. X+         case F_CUT:
  487. X+         put_msg("Select object to cut into cut-file");
  488. X+         file_cut_selected();
  489. X+         break;
  490. X+         case F_PASTE:
  491. X+         read_file(cut_buf_name);
  492. X+         break;
  493. X          case F_READ :
  494. X          init_msg_receiving(read_file, "Read file : ");
  495. X          break;
  496. X***************
  497. X*** 221,232 ****
  498. X          init_msg_receiving(write_bitmap, "Save bitmap to file : ");
  499. X          break;
  500. X          }
  501. X!     Reset_cursor();
  502. X      XtPopdown(menu);
  503. X      }
  504. X  
  505. X  quit()
  506. X  {
  507. X      if (no_object()) {
  508. X          tool_destroy(tool);
  509. X          exit(0);
  510. X--- 236,251 ----
  511. X          init_msg_receiving(write_bitmap, "Save bitmap to file : ");
  512. X          break;
  513. X          }
  514. X!     reset_cursor();
  515. X      XtPopdown(menu);
  516. X      }
  517. X  
  518. X  quit()
  519. X  {
  520. X+     /* delete the cut buffer only if it is a temporary file */
  521. X+     if(strncmp(cut_buf_name, "/tmp",4) == 0)
  522. X+         unlink(cut_buf_name);
  523. X+ 
  524. X      if (no_object()) {
  525. X          tool_destroy(tool);
  526. X          exit(0);
  527. X*** print.c.p9    Mon Apr 16 11:22:34 1990
  528. X--- print.c    Tue Sep 25 15:58:40 1990
  529. X***************
  530. X*** 25,88 ****
  531. X  static char prcmd[200];
  532. X  static char *conf_prnt =
  533. X          "Figure hasn't been saved, PRINT with LEFT button, CANCEL with MIDDLE or RIGHT";
  534. X  
  535. X  print_figure()
  536. X! {
  537. X! int    print_to_specified_printer();
  538. X! int    print_to_file();
  539. X!     if (current_file[0]==0) {
  540. X          put_msg("NO FILE TO PRINT");
  541. X          XBell(tool_d,50);
  542. X!     }
  543. X!     else {
  544. X          if (figure_modified)    /* modified without saving, confirm print */
  545. X              if (wmgr_confirm(canvas_win, conf_prnt) != -1)
  546. X              return;
  547. X  
  548. X!                 if (! strcmp("Default", printer)) {
  549. X!           put_msg("Print figure %s on printer %s in %s mode",
  550. X              current_file,printer,print_landscape? "LANDSCAPE":"PORTRAIT");
  551. X!           sprintf(prcmd,"f2ps -c %s %s | lpr -J %s",
  552. X!               print_landscape? "-L":"-P", 
  553. X!               current_file,
  554. X!               current_file);
  555. X!         }
  556. X                  else if (! strcmp("File", printer))
  557. X                    init_msg_receiving(print_to_file, "Output file : ");
  558. X                  else if (! strcmp("Specify", printer))
  559. X                    init_msg_receiving(print_to_specified_printer, "Printer : ");
  560. X!                 else {    /* default */
  561. X!           put_msg("Print figure %s on printer %s in %s mode",
  562. X!             current_file,printer,print_landscape? "LANDSCAPE":"PORTRAIT");
  563. X!           sprintf(prcmd,"f2ps -c %s %s | lpr -J %s -P%s",
  564. X!             print_landscape? "-L":"-P", 
  565. X!             current_file,
  566. X!             current_file, 
  567. X!             printer);
  568. X!         }
  569. X          if (system(prcmd)==127)
  570. X              put_msg("Error in printing");
  571. X      }
  572. X- }
  573. X  
  574. X  print_to_file(file)
  575. X  char    *file;
  576. X! {
  577. X      if (*file == 0) {
  578. X          put_msg("Empty name");
  579. X          return;
  580. X          }
  581. X      sprintf(prcmd,"f2ps -c %s %s > %s",
  582. X          print_landscape? "-L":"-P",
  583. X          current_file,
  584. X          file);
  585. X      put_msg("Print figure %s to file %s in %s mode",
  586. X        current_file,file,print_landscape? "LANDSCAPE":"PORTRAIT");
  587. X! }
  588. X  
  589. X  print_to_specified_printer(specified_printer)
  590. X  char    *specified_printer;
  591. X! {
  592. X      if (*specified_printer == 0) {
  593. X          put_msg("Empty name");
  594. X          return;
  595. X--- 25,119 ----
  596. X  static char prcmd[200];
  597. X  static char *conf_prnt =
  598. X          "Figure hasn't been saved, PRINT with LEFT button, CANCEL with MIDDLE or RIGHT";
  599. X+ static    char    translator[40],
  600. X+         syspr[40];
  601. X  
  602. X  print_figure()
  603. X!     {
  604. X!     int    print_to_specified_printer();
  605. X!     int    print_to_file();
  606. X! 
  607. X!     if (current_file[0]==0) 
  608. X!         {
  609. X          put_msg("NO FILE TO PRINT");
  610. X          XBell(tool_d,50);
  611. X!         }
  612. X!     else 
  613. X!         {
  614. X          if (figure_modified)    /* modified without saving, confirm print */
  615. X              if (wmgr_confirm(canvas_win, conf_prnt) != -1)
  616. X              return;
  617. X  
  618. X!                 if (! strcmp("Default", printer)) 
  619. X!             {
  620. X!             put_msg("Print figure %s on printer %s in %s mode",
  621. X              current_file,printer,print_landscape? "LANDSCAPE":"PORTRAIT");
  622. X! #ifndef TFX
  623. X!             strcpy(translator,"f2ps -c ");
  624. X!             strcat(translator,print_landscape? "-L":"-P");
  625. X! #else
  626. X!             strcpy(translator,"fig2dev -Lps -P ");
  627. X!             strcat(translator,print_landscape? "-l xxx":" ");
  628. X! #endif
  629. X! #ifdef SYSV
  630. X!             sprintf(syspr,"lp -oPS");
  631. X! #else
  632. X!             sprintf(syspr,"lpr -J %s", current_file);
  633. X! #endif
  634. X!             /* lastly, make up the whole translate/print command */
  635. X!             sprintf(prcmd,"%s %s | %s",translator,current_file,syspr);
  636. X!             }
  637. X                  else if (! strcmp("File", printer))
  638. X                    init_msg_receiving(print_to_file, "Output file : ");
  639. X                  else if (! strcmp("Specify", printer))
  640. X                    init_msg_receiving(print_to_specified_printer, "Printer : ");
  641. X!                 else 
  642. X!             {    /* default */
  643. X!             put_msg("Print figure %s on printer %s in %s mode",
  644. X!             current_file,printer,print_landscape? "LANDSCAPE":"PORTRAIT");
  645. X! #ifndef TFX
  646. X!             strcpy(translator,"f2ps -c ");
  647. X!             strcat(translator,print_landscape? "-L":"-P");
  648. X! #else
  649. X!             strcpy(translator,"fig2dev -Lps -P ");
  650. X!             strcat(translator,print_landscape? "-l xxx":" ");
  651. X! #endif
  652. X! #ifdef SYSV
  653. X!             sprintf(syspr,"lp -d%s -oPS",printer);
  654. X! #else
  655. X!             sprintf(syspr,"lpr -J %s -P%s", current_file, printer);
  656. X! #endif
  657. X!             /* lastly, make up the whole translate/print command */
  658. X!             sprintf(prcmd,"%s %s | %s",translator,current_file,syspr);
  659. X!             }
  660. X          if (system(prcmd)==127)
  661. X              put_msg("Error in printing");
  662. X+         }
  663. X      }
  664. X  
  665. X  print_to_file(file)
  666. X  char    *file;
  667. X!     {
  668. X      if (*file == 0) {
  669. X          put_msg("Empty name");
  670. X          return;
  671. X          }
  672. X+ #ifndef TFX
  673. X      sprintf(prcmd,"f2ps -c %s %s > %s",
  674. X          print_landscape? "-L":"-P",
  675. X+ #else
  676. X+     sprintf(prcmd,"fig2dev -Lps -P %s %s %s",
  677. X+         print_landscape? "-l xxx":" ",
  678. X+ #endif
  679. X          current_file,
  680. X          file);
  681. X      put_msg("Print figure %s to file %s in %s mode",
  682. X        current_file,file,print_landscape? "LANDSCAPE":"PORTRAIT");
  683. X!     }
  684. X  
  685. X  print_to_specified_printer(specified_printer)
  686. X  char    *specified_printer;
  687. X!     {
  688. X      if (*specified_printer == 0) {
  689. X          put_msg("Empty name");
  690. X          return;
  691. X***************
  692. X*** 89,97 ****
  693. X          }
  694. X      put_msg("Print figure %s on printer %s in %s mode",
  695. X        current_file,specified_printer,print_landscape? "LANDSCAPE":"PORTRAIT");
  696. X!     sprintf(prcmd,"f2ps -c %s %s | lpr -J %s -P%s",
  697. X!       print_landscape? "-L":"-P", 
  698. X!       current_file,
  699. X!       current_file, 
  700. X!       specified_printer);
  701. X! }
  702. X--- 120,136 ----
  703. X          }
  704. X      put_msg("Print figure %s on printer %s in %s mode",
  705. X        current_file,specified_printer,print_landscape? "LANDSCAPE":"PORTRAIT");
  706. X! #ifndef TFX
  707. X!             strcpy(translator,"f2ps -c ");
  708. X!             strcat(translator,print_landscape? "-L":"-P");
  709. X! #else
  710. X!             strcpy(translator,"fig2dev -Lps -P ");
  711. X!             strcat(translator,print_landscape? "-l xxx":" ");
  712. X! #endif
  713. X! #ifdef SYSV
  714. X!             sprintf(syspr,"lp -d%s -oPS",specified_printer);
  715. X! #else
  716. X!             sprintf(syspr,"lpr -J %s -P%s", current_file, specified_printer);
  717. X! #endif
  718. X!     sprintf(prcmd,"%s %s | %s",translator,current_file,syspr);
  719. X!     }
  720. X*** read.c.p9    Mon Jun 25 11:25:28 1990
  721. X--- read.c    Fri Jul  6 10:48:42 1990
  722. X***************
  723. X*** 97,103 ****
  724. X--- 97,107 ----
  725. X      float    fproto;
  726. X    
  727. X      num_object = 0;
  728. X+ #ifdef SYSV
  729. X+     memset((char*)obj, 0, COMOBJ_SIZE);
  730. X+ #else
  731. X      bzero((char*)obj, COMOBJ_SIZE);
  732. X+ #endif
  733. X      if (fgets(buf,BUF_SIZE,fp)==0)    /* version */
  734. X          return -2;
  735. X      if (strncmp(buf,"#FIG",4)==0)    /* versions 1.4/later have #FIG in first line */
  736. X***************
  737. X*** 450,457 ****
  738. X  #else
  739. X      if ((proto==14 && n != 10) || 
  740. X          (proto==20 && (l->type == T_ARC_BOX && n != 11) || 
  741. X!               (l->type != T_ARC_BOX && n != 10))) {
  742. X  #endif TFX
  743. X          put_msg(Err_incomp, "line", line_no);
  744. X          free((char*)l);
  745. X          return(NULL);
  746. X--- 454,462 ----
  747. X  #else
  748. X      if ((proto==14 && n != 10) || 
  749. X          (proto==20 && (l->type == T_ARC_BOX && n != 11) || 
  750. X!               (l->type != T_ARC_BOX && n != 10)))
  751. X  #endif TFX
  752. X+         {
  753. X          put_msg(Err_incomp, "line", line_no);
  754. X          free((char*)l);
  755. X          return(NULL);
  756. X***************
  757. X*** 675,681 ****
  758. X      if (n == 13) {
  759. X        /* Read in the remainder of the text object. */
  760. X        do {
  761. X!         fgets(buf, BUF_SIZE, fp);
  762. X          line_no++;          /* As is done in get_line */
  763. X          n = sscanf(buf,"%[^\1]%[\1]", s_temp, junk);
  764. X          /* Safety check */
  765. X--- 680,687 ----
  766. X      if (n == 13) {
  767. X        /* Read in the remainder of the text object. */
  768. X        do {
  769. X!         /*khc 06JUL90 - test for end-of-file or else hangs in loop if no ^A is found */
  770. X!         if(fgets(buf, BUF_SIZE, fp) == NULL)break;
  771. X          line_no++;          /* As is done in get_line */
  772. X          n = sscanf(buf,"%[^\1]%[\1]", s_temp, junk);
  773. X          /* Safety check */
  774. X*** ruler.c.p9    Mon Apr 16 11:36:36 1990
  775. X--- ruler.c    Thu Jul  5 13:42:49 1990
  776. X***************
  777. X*** 261,267 ****
  778. X         fg, and bg when XOR'ed with bg.
  779. X         */
  780. X      XSetForeground(tool_d, gc, fg ^ bg);
  781. X!     XSetBackground(tool_d, gc, 0);
  782. X  
  783. X      /* make pixmaps for top ruler arrow */
  784. X      toparrow_pm = XCreatePixmap(tool_d, topruler_win, trm_pr.width,
  785. X--- 261,267 ----
  786. X         fg, and bg when XOR'ed with bg.
  787. X         */
  788. X      XSetForeground(tool_d, gc, fg ^ bg);
  789. X!     XSetBackground(tool_d, gc, (unsigned long) 0);
  790. X  
  791. X      /* make pixmaps for top ruler arrow */
  792. X      toparrow_pm = XCreatePixmap(tool_d, topruler_win, trm_pr.width,
  793. X***************
  794. X*** 380,386 ****
  795. X  
  796. X      /* Colors set as above */
  797. X      XSetForeground(tool_d, gc, fg ^ bg);
  798. X!     XSetBackground(tool_d, gc, 0);
  799. X  
  800. X      /* make pixmaps for side ruler arrow */
  801. X      if( appres.RHS_PANEL )
  802. X--- 380,386 ----
  803. X  
  804. X      /* Colors set as above */
  805. X      XSetForeground(tool_d, gc, fg ^ bg);
  806. X!     XSetBackground(tool_d, gc, (unsigned long) 0);
  807. X  
  808. X      /* make pixmaps for side ruler arrow */
  809. X      if( appres.RHS_PANEL )
  810. X*** spline.c.p9    Tue May  1 16:40:18 1990
  811. X--- spline.c    Thu Jul  5 13:23:57 1990
  812. X***************
  813. X*** 82,88 ****
  814. X          }
  815. X      if (NULL == (Spline_malloc(spline))) {
  816. X          put_msg(Err_mem);
  817. X!         return(NULL);
  818. X          }
  819. X      spline->style = line_style;
  820. X      spline->thickness = line_thickness;
  821. X--- 82,88 ----
  822. X          }
  823. X      if (NULL == (Spline_malloc(spline))) {
  824. X          put_msg(Err_mem);
  825. X!         return;
  826. X          }
  827. X      spline->style = line_style;
  828. X      spline->thickness = line_thickness;
  829. X*** text.c.p9    Tue May  1 16:40:18 1990
  830. X--- text.c    Wed Aug  1 15:56:29 1990
  831. X***************
  832. X*** 30,35 ****
  833. X--- 30,36 ----
  834. X  
  835. X  extern    int        font_button, size_button;
  836. X  extern    int        type_button;
  837. X+ extern    int        step_button;
  838. X  
  839. X  extern    int        cur_font, cur_fontsize;
  840. X  extern            char_handler();
  841. X***************
  842. X*** 45,56 ****
  843. X  
  844. X  static    int        char_ht, char_wid;
  845. X  static    int        base_x, base_y;
  846. X  static    F_text        *cur_text;
  847. X  static    PR_SIZE        tsize;
  848. X  static    PR_SIZE        ssize;
  849. X  
  850. X  F_text            *create_text();
  851. X! static            finish_text_input();
  852. X  static            finish_n_start();
  853. X  static            init_text_input();
  854. X  static            wrap_up();
  855. X--- 46,58 ----
  856. X  
  857. X  static    int        char_ht, char_wid;
  858. X  static    int        base_x, base_y;
  859. X+ 
  860. X  static    F_text        *cur_text;
  861. X  static    PR_SIZE        tsize;
  862. X  static    PR_SIZE        ssize;
  863. X  
  864. X  F_text            *create_text();
  865. X! extern            finish_text_input();
  866. X  static            finish_n_start();
  867. X  static            init_text_input();
  868. X  static            wrap_up();
  869. X***************
  870. X*** 62,68 ****
  871. X      init_text_input(x, y);
  872. X      }
  873. X  
  874. X- static
  875. X  finish_text_input()
  876. X  {
  877. X      wrap_up();
  878. X--- 64,69 ----
  879. X***************
  880. X*** 69,74 ****
  881. X--- 70,83 ----
  882. X      text_drawing_selected();
  883. X      }
  884. X  
  885. X+ new_text_line()
  886. X+ {
  887. X+     wrap_up();
  888. X+     cur_y += (int) ((float) char_ht * step_button / 10.0);
  889. X+     cur_x = base_x;
  890. X+     init_text_input(cur_x, cur_y);
  891. X+ }
  892. X+ 
  893. X  static
  894. X  wrap_up()
  895. X  {
  896. X***************
  897. X*** 117,124 ****
  898. X  init_text_input(x, y)
  899. X  int    x, y;
  900. X  {
  901. X!     int basx;
  902. X! 
  903. X      cur_x = x;
  904. X      cur_y = y;
  905. X  
  906. X--- 126,132 ----
  907. X  init_text_input(x, y)
  908. X  int    x, y;
  909. X  {
  910. X!     int   basx;
  911. X      cur_x = x;
  912. X      cur_y = y;
  913. X  
  914. X*** troff_fonts.c.p9    Mon May  7 13:31:22 1990
  915. X--- troff_fonts.c    Thu Jul  5 10:05:17 1990
  916. X***************
  917. X*** 17,24 ****
  918. X  
  919. X  troff_init()
  920. X  {
  921. X!     FILE    *fp,
  922. X!         *fopen();
  923. X      char    fname[128],
  924. X          line[128],
  925. X          *p,
  926. X--- 17,23 ----
  927. X  
  928. X  troff_init()
  929. X  {
  930. X!     FILE    *fp;
  931. X      char    fname[128],
  932. X          line[128],
  933. X          *p,
  934. X*** xfig.man.p9    Tue Apr 24 11:24:00 1990
  935. X--- xfig.man    Fri Sep 21 14:36:17 1990
  936. X***************
  937. X*** 1,23 ****
  938. X! .TH XFIG 1 "Release 2.0 (Protocol 1.4X)"
  939. X  .SH NAME
  940. X  xfig \- Facility for Interactive Generation of figures under X11
  941. X  .SH SYNOPSIS
  942. X  .B xfig
  943. X! [ \fB-ri[ght]\fP ] 
  944. X! [ \fB-le[ft]\fP ]
  945. X! [ \fB-L[andscape]\fP ]
  946. X! [ \fB-P[ortrait]\fP ]
  947. X! [ \fB-pw[idth]\fP \fIunits\fP ]
  948. X! [ \fB-ph[eight]\fP \fIunits\fP ]
  949. X! [ \fB-not[rack]\fP ]
  950. X! [ \fB-tr[ack]\fP ]
  951. X! [ \fB-inc[hes]\fP ]
  952. X! [ \fB-me[tric]\fP ]
  953. X! [ \fB-inv[erse]\fP ]
  954. X! [ \fB-de[bug]\fP ]
  955. X! [ \fIfile\fP ]
  956. X! [ \fB-normal[Font]\fP \fIfont\fP ]
  957. X! [ \fB-bold[Font]\fP \fIfont\fP ]
  958. X  .SH DESCRIPTION
  959. X  .I Xfig 
  960. X  is a menu-driven tool that allows the user to draw and manipulate objects
  961. X--- 1,23 ----
  962. X! .TH XFIG 1 "Release 2.0, pl9 (Protocol 2.0)"
  963. X  .SH NAME
  964. X  xfig \- Facility for Interactive Generation of figures under X11
  965. X  .SH SYNOPSIS
  966. X  .B xfig
  967. X! [\fB-ri[ght]\fP]
  968. X! [\fB-le[ft]\fP]
  969. X! [\fB-L[andscape]\fP]
  970. X! [\fB-P[ortrait]\fP]
  971. X! [\fB-pw[idth]\fP \fIunits\fP]
  972. X! [\fB-ph[eight]\fP \fIunits\fP]
  973. X! [\fB-not[rack]\fP]
  974. X! [\fB-tr[ack]\fP]
  975. X! [\fB-inc[hes]\fP]
  976. X! [\fB-me[tric]\fP]
  977. X! [\fB-inv[erse]\fP]
  978. X! [\fB-de[bug]\fP]
  979. X! [\fIfile\fP]
  980. X! [\fB-normal[Font]\fP \fIfont\fP]
  981. X! [\fB-bold[Font]\fP \fIfont\fP]
  982. X  .SH DESCRIPTION
  983. X  .I Xfig 
  984. X  is a menu-driven tool that allows the user to draw and manipulate objects
  985. X***************
  986. X*** 165,170 ****
  987. X--- 165,174 ----
  988. X  Most of the functions in the pop-up menu can be directly access with
  989. X  the lower button panel.
  990. X  .TP
  991. X+ .I Quit
  992. X+ Exit from \fIxfig\fP, discarding the figure. The user will be asked to 
  993. X+ confirm the action, by clicking the left button.
  994. X+ .TP
  995. X  .I Undo
  996. X  Undo the last object creation or modification.
  997. X  .TP
  998. X***************
  999. X*** 174,179 ****
  1000. X--- 178,195 ----
  1001. X  .I Remove all
  1002. X  Remove all objects on the canvas window (can be undone).
  1003. X  .TP
  1004. X+ .I Cut
  1005. X+ Select object to copy into the cut/paste file.  This file is called \f3.xfig\f1
  1006. X+ in the user's \f3$HOME\f1 directory.  This allows a user to run two or more
  1007. X+ xfig processes and cut/paste objects between them.
  1008. X+ If there is no \f3$HOME\f1, a file is
  1009. X+ created in \f3/tmp\f1, called \f3xfig\f2PID\f1 where \f2PID\f1 is the 
  1010. X+ xfig process ID.
  1011. X+ .TP
  1012. X+ .I Paste
  1013. X+ Paste the object previously copied into the cut/paste file into the current
  1014. X+ figure.
  1015. X+ .TP
  1016. X  .I Edit file ...
  1017. X  The current contents of the canvas are cleared and the figure
  1018. X  is read from the specified file.
  1019. X***************
  1020. X*** 203,208 ****
  1021. X--- 219,227 ----
  1022. X  Change the working directory.  Any file name without a full path name
  1023. X  will employ the current working directory.
  1024. X  .TP
  1025. X+ .I Print Working Directory
  1026. X+ Show the current working directory.
  1027. X+ .TP
  1028. X  .I Save & Quit
  1029. X  Save the figure in the current file and exit from \fIxfig\fP.
  1030. X  If there is no current file, the user will be asked for a file name.
  1031. X***************
  1032. X*** 211,224 ****
  1033. X  .I Save as Bitmap
  1034. X  Create an X11 bitmap from the figure the size of which is determined
  1035. X  by the enclosing rectangle of all the figure plus a small border.
  1036. X- .TP
  1037. X- .I Quit
  1038. X- Exit from \fIxfig\fP, discarding the figure. The user will be asked to 
  1039. X- confirm the action, by clicking the left button.
  1040. X  .SH "BOTTOM PANEL COMMAND FUNCTIONS"
  1041. X! Most of the buttons in the bottom panel are counterparts to the pop-up menu functions.
  1042. X! However, there are additional buttons for selecting font, font size, print orientation
  1043. X! (landscape or portrait) and the printer device itself.
  1044. X  .SH "BOTTOM PANEL WINDOW COMMAND DESCRIPTIONS"
  1045. X  .TP
  1046. X  .I FONT SELECT
  1047. X--- 230,240 ----
  1048. X  .I Save as Bitmap
  1049. X  Create an X11 bitmap from the figure the size of which is determined
  1050. X  by the enclosing rectangle of all the figure plus a small border.
  1051. X  .SH "BOTTOM PANEL COMMAND FUNCTIONS"
  1052. X! Most of the buttons in the bottom panel are counterparts to the pop-up menu
  1053. X! functions.  However, there are additional buttons for selecting font, font
  1054. X! size, text line step, print orientation (landscape or portrait) and the
  1055. X! printer device itself.
  1056. X  .SH "BOTTOM PANEL WINDOW COMMAND DESCRIPTIONS"
  1057. X  .TP
  1058. X  .I FONT SELECT
  1059. X***************
  1060. X*** 238,243 ****
  1061. X--- 254,264 ----
  1062. X  The left button decreases the point size of font used on the canvas and printer.
  1063. X  The right button increases the point size.
  1064. X  .TP
  1065. X+ .I FONT STEP
  1066. X+ The left button decreases the interline spacing of text and the right button 
  1067. X+ increases the step.  The number displayed give the multiple of the font height
  1068. X+ that will be placed between lines on hitting return.
  1069. X+ .TP
  1070. X  .I LANDSCAPE/PORTRAIT
  1071. X  Select landscape or portrait mode of printing.
  1072. X  The default setting is that of the \fIxfig\fP canvas.
  1073. X***************
  1074. X*** 430,438 ****
  1075. X  Text is drawn using the current font, font size and justification settings.
  1076. X  A DEL or ^H (backspace) will delete a character, while a ^U will kill
  1077. X  the entire line.
  1078. X! Terminate by clicking the middle button or typing the return key.  To
  1079. X! edit text, click on an existing text string with the left button.
  1080. X! Insertion of characters will take place at that point.  
  1081. X  .TP
  1082. X  .I TURN
  1083. X  Turn \fIPOLYGON\fP into a \fICLOSED INTERPOLATED SPLINE\fP object, or
  1084. X--- 451,464 ----
  1085. X  Text is drawn using the current font, font size and justification settings.
  1086. X  A DEL or ^H (backspace) will delete a character, while a ^U will kill
  1087. X  the entire line.
  1088. X! Terminate by clicking the middle button or typing the return key.  
  1089. X! If return is used, the text pointer automatically moves to the next "line",
  1090. X! a distance of the font height times the value in the TEXT STEP button,
  1091. X! and text input mode is re-entered.  To terminate text fully, click the middle
  1092. X! button or choose any panel button that changes modes (e.g. box, save, etc).
  1093. X! To edit text, click on an existing text string with the left button.
  1094. X! Insertion of characters will take place at that point.  Or, use the popup
  1095. X! change object button to modify the text.
  1096. X  .TP
  1097. X  .I TURN
  1098. X  Turn \fIPOLYGON\fP into a \fICLOSED INTERPOLATED SPLINE\fP object, or
  1099. X***************
  1100. X*** 581,586 ****
  1101. X--- 607,614 ----
  1102. X  .PP
  1103. X  Undoing the creation of a compound object deletes the objects
  1104. X  outside the compound object.  Undoing the undo doesn't bring them back.
  1105. X+ .PP
  1106. X+ Undoing a move-point of a box or arc-box will corrupt the object.
  1107. X  .PP
  1108. X  Ellipses which are too narrow are not drawn correctly.
  1109. X  .SH "SEE ALSO"
  1110. END_OF_FILE
  1111. if test 30432 -ne `wc -c <'patch9.diff2'`; then
  1112.     echo shar: \"'patch9.diff2'\" unpacked with wrong size!
  1113. fi
  1114. # end of 'patch9.diff2'
  1115. fi
  1116. echo shar: End of archive 6 \(of 6\).
  1117. cp /dev/null ark6isdone
  1118. MISSING=""
  1119. for I in 1 2 3 4 5 6 ; do
  1120.     if test ! -f ark${I}isdone ; then
  1121.     MISSING="${MISSING} ${I}"
  1122.     fi
  1123. done
  1124. if test "${MISSING}" = "" ; then
  1125.     echo You have unpacked all 6 archives.
  1126.     rm -f ark[1-9]isdone
  1127. else
  1128.     echo You still need to unpack the following archives:
  1129.     echo "        " ${MISSING}
  1130. fi
  1131. ##  End of shell archive.
  1132. exit 0
  1133.  
  1134. dan
  1135. ----------------------------------------------------
  1136. O'Reilly && Associates   argv@sun.com / argv@ora.com
  1137. Opinions expressed reflect those of the author only.
  1138.